package 接口;

import uilt.U;

/**
 * 接口也是引用数据类型
 * 接口是完全抽象的
 * 接口的语法：
 *      [修饰符] interface 接口名{
 *
 *      }
 * 接口里只能有两样东西，一个是常量，一个是抽象方法
 * 接口中只能两样东西，一个是常量，一个是抽象方法
 * 接口中不能有方法体
 * 使用接口，写代码时可以使用多态（父类型引用指向子类型）
 */
public class TestMain {
    public static void main(String[] args) {
        myclass01 ss = new myclass01();
        U.p(ss.par(20,30));
    }
}

/**
 * 定义一个接口
 * 接口支持多继承，一个接口可以继承多个接口
 * 一个接口支持继承多个接口
 * 接口中所有的元素都是public修饰的，(都是公开的)，public abstract 可以省略
 */
interface Myinterfaceinit extends MyinterfaceA,MyinterfaceB{
}
interface MyinterfaceA{

}
interface MyinterfaceB{

}




interface MyMath{
    int i = 30;  //接口中的常量public static final 可以省略
    int sum(int par,int part);
}

class interfaceTest implements MyMath {
    public static void main(String[] args) {
        interfaceTest in = new interfaceTest();
        int res =  in.sum(20,30);
        U.p(res);

    }

    @Override
    public int sum(int par, int part) {
        if (par>=20){
            return par *part;
        }
        return par + part;
    }
}

interface myinterface01{
    int is = 220;
    double par(int i,int ii);
}

class myclass01 implements myinterface01{
    @Override
    public double par(int i, int ii) {
        U.p(is);
        return i+ii;
    }
}

